﻿using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

namespace WebArchivosTelefonica
{
	/// <summary>
	/// Clase de manejo de visibilidad
	/// </summary>
	public static class AdministradorVisibilidad
	{

		/// <summary>
		/// Método de visibilidad para el boton de aprobar
		/// </summary>
		/// <param name="idEstado"></param>
		/// <returns></returns>
		public static bool AprobarVisible(int idEstado)
		{
			

			int posicionTablaVisibilidad = 0;

			if (Roles.IsUserInRole("Creador"))
				posicionTablaVisibilidad += (int)Math.Pow(2,4);

			if (Roles.IsUserInRole("Revisor TES"))
				posicionTablaVisibilidad += (int)Math.Pow(2, 3);

			if (Roles.IsUserInRole("Aprobador TES"))
				posicionTablaVisibilidad += (int)Math.Pow(2, 2);
			
			if (Roles.IsUserInRole("Revisor Cliente"))
				posicionTablaVisibilidad += (int)Math.Pow(2, 1);

			if (Roles.IsUserInRole("Aprobador Cliente"))
				posicionTablaVisibilidad += 1;
			
			

			bool[,] tablaVisibilidad = new bool[32, 10]
			//        
				{  
				{ false, false, false, false, false, false, false, false, false, false, },
				{ false, false, false, false, true, true, false, false, false, true, },
				{ false, false, false, true, false, false, false, false, true, false, },
				{ false, false, false, true, true, true, false, false, true, true, },
				{ false, false, true, false, false, false, false, true, false, false, },
				{ false, false, true, false, true, true, false, true, false, true, },
				{ false, false, true, true, false, false, false, true, true, false, },
				{ false, false, true, true, true, true, false, true, true, true, },
				{ false, true, false, false, false, false, false, false, false, false, },
				{ false, true, false, false, true, true, false, false, false, true, },
				{ false, true, false, true, false, false, false, false, true, false, },
				{ false, true, false, true, true, true, false, false, true, true, },
				{ false, true, true, false, false, false, false, true, false, false, },
				{ false, true, true, false, true, true, false, true, false, true, },
				{ false, true, true, true, false, false, false, true, true, false, },
				{ false, true, true, true, true, true, false, true, true, true, },
				{ false, false, false, false, false, false, false, false, false, false, },
				{ false, false, false, false, true, true, false, false, false, true, },
				{ false, false, false, true, false, false, false, false, true, false, },
				{ false, false, false, true, true, true, false, false, true, true, },
				{ false, false, true, false, false, false, false, true, false, false, },
				{ false, false, true, false, true, true, false, true, false, true, },
				{ false, false, true, true, false, false, false, true, true, false, },
				{ false, false, true, true, true, true, false, true, true, true, },
				{ false, true, false, false, false, false, false, false, false, false, },
				{ false, true, false, false, true, true, false, false, false, true, },
				{ false, true, false, true, false, false, false, false, true, false, },
				{ false, true, false, true, true, true, false, false, true, true, },
				{ false, true, true, false, false, false, false, true, false, false, },
				{ false, true, true, false, true, true, false, true, false, true, },
				{ false, true, true, true, false, false, false, true, true, false, },
				{ false, true, true, true, true, true, false, true, true, true, }
				}
				;
			return tablaVisibilidad[posicionTablaVisibilidad, idEstado];
		}

		/// <summary>
		/// Método de visibilidad para el boton de rechazar
		/// </summary>
		/// <param name="idEstado"></param>
		/// <returns></returns>
		
		public static bool RechazarVisible(int idEstado)
		{


			int posicionTablaVisibilidad = 0;

			if (Roles.IsUserInRole("Creador"))
				posicionTablaVisibilidad += (int)Math.Pow(2, 4);

			if (Roles.IsUserInRole("Revisor TES"))
				posicionTablaVisibilidad += (int)Math.Pow(2, 3);

			if (Roles.IsUserInRole("Aprobador TES"))
				posicionTablaVisibilidad += (int)Math.Pow(2, 2);

			if (Roles.IsUserInRole("Revisor Cliente"))
				posicionTablaVisibilidad += (int)Math.Pow(2, 1);

			if (Roles.IsUserInRole("Aprobador Cliente"))
				posicionTablaVisibilidad += 1;



			bool[,] tablaVisibilidad = new bool[32, 10]
			//        
				{  
{ false, false, false, false, false, false, false, false, false, false, },
{ false, false, false, false, true, true, false, false, false, false, },
{ false, false, false, true, false, false, false, false, false, true, },
{ false, false, false, true, true, true, false, false, false, true, },
{ false, false, true, false, false, false, false, false, true, false, },
{ false, false, true, false, true, true, false, false, true, false, },
{ false, false, true, true, false, false, false, false, true, true, },
{ false, false, true, true, true, true, false, false, true, true, },
{ false, true, false, false, false, false, false, true, false, false, },
{ false, true, false, false, true, true, false, true, false, false, },
{ false, true, false, true, false, false, false, true, false, true, },
{ false, true, false, true, true, true, false, true, false, true, },
{ false, true, true, false, false, false, false, true, true, false, },
{ false, true, true, false, true, true, false, true, true, false, },
{ false, true, true, true, false, false, false, true, true, true, },
{ false, true, true, true, true, true, false, true, true, true, },
{ false, false, false, false, false, false, false, false, false, false, },
{ false, false, false, false, true, true, false, false, false, false, },
{ false, false, false, true, false, false, false, false, false, true, },
{ false, false, false, true, true, true, false, false, false, true, },
{ false, false, true, false, false, false, false, false, true, false, },
{ false, false, true, false, true, true, false, false, true, false, },
{ false, false, true, true, false, false, false, false, true, true, },
{ false, false, true, true, true, true, false, false, true, true, },
{ false, true, false, false, false, false, false, true, false, false, },
{ false, true, false, false, true, true, false, true, false, false, },
{ false, true, false, true, false, false, false, true, false, true, },
{ false, true, false, true, true, true, false, true, false, true, },
{ false, true, true, false, false, false, false, true, true, false, },
{ false, true, true, false, true, true, false, true, true, false, },
{ false, true, true, true, false, false, false, true, true, true, },
{ false, true, true, true, true, true, false, true, true, true, },


				}
				;
			return tablaVisibilidad[posicionTablaVisibilidad, idEstado];
		}
	}
}
